package com.jiazaibendi.lottery.service;

import com.jiazaibendi.lottery.model.PrizeVo;

/**
 * description
 * 用户操作服务类
 * @author echo_kai
 * @version 1.0
 * @date 2021/08/06
 */
public interface OperationService {

    /**
     * description
     * 查询用户对应方案剩余的抽奖次数
     * @param userId    用户特征码(手机号或者其余的)
     * @param schemeId  方案Id
     * @return int
     * @author echo_kai
     * @date 2021/8/6
     * @version 1.0
     */
    int queryUserRemainingFrequency(long userId, long schemeId);

    /**
     * description
     * 通过分享朋友圈添加抽奖次数
     * @param userId
     * @param schemeId
     * @return void
     * @author echo_kai
     * @date 2021/8/6
     * @version 1.0
     */
    void addFrequencyByFriendCircle(long userId, long schemeId);

    /**
     * description
     * 通过分享好友添加抽奖次数
     * @param userId
     * @param schemeId
     * @return void
     * @author echo_kai
     * @date 2021/8/6
     * @version 1.0
     */
    boolean addFrequencyByFriend(long userId, long schemeId);

    /**
     * description
     * 通过分享群添加抽奖次数
     * @param userId
     * @param schemeId
     * @return void
     * @author echo_kai
     * @date 2021/8/6
     * @version 1.0
     */
    boolean addFrequencyByGroup(long userId, long schemeId);

    /**
     * description
     * 抽奖次数减少一次
     * @param userId
     * @param schemeId
     * @return void
     * @author echo_kai
     * @date 2021/8/6
     * @version 1.0
     */
    void decreaseFrequency(long userId, long schemeId);

    /**
     *description
     * 参与一次游戏
     * @param userId
     * @param schemeId
     * @return long
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    PrizeVo playGame(long userId, long schemeId);

}
